SPB Git

spb/autoscholar

Public
876 B · 24 lines typescript
1import { updatePaperMetadata } from "@autoscholar/publisher";2import { z } from "zod";3import { handler, json, parseBody } from "@/lib/server/api";4import { db } from "@/lib/server/db";5import { requireAdmin } from "@/lib/server/session";67export const runtime = "nodejs";89export const POST = handler(async (req, { params }) => {10  const sess = await requireAdmin(req, { mutation: true });11  const { id } = (await params) as { id: string };12  const body = await parseBody(13    req,14    z.object({15      title: z.string().min(3).max(300).optional(),16      keywords: z.array(z.string().min(1).max(60)).min(2).max(12).optional(),17      abstract: z.string().min(50).max(5000).optional(),18      note: z.string().min(5).max(500),19    }),20  );21  const { note, ...patch } = body;22  return json(await updatePaperMetadata(db(), id, patch, { id: sess.userId, ip: sess.ip }, note));23});24
Files · main
Menu

Theme